1. Field of the Invention
The invention is related to the field of data storage systems, and in particular, to the encoding of user data to control run-length and improve system performance.
2. Statement of the Problem
Data storage systems include disk drives and tape drives. These storage drives encode user data and then write the encoded user data to storage media. When the data is later requested, the drive reads the encoded user data from the storage media and recovers the user data through a reciprocal decoding technique. Encoding often entails the conversion of user data into a series of transitions that are written to a disk or tape. For example, a transition may represent a xe2x80x9conexe2x80x9d, and a lack of a transition may represent a xe2x80x9czeroxe2x80x9d. Some common encoding techniques are Non-Return to Zero Inverted (NRZI) and Partial Response Four (PR4).
In some cases, the encoded user data includes a string of zeros that are represented by a flat signal with no transitions. This lack of transitions creates timing and gain problems when recovering the user data. To relieve this problem, Run Length Limit (RLL) algorithms are used during the encoding process to systematically replace strings of zeros with special codes that include some transitions. Although RLL encoding improves timing and gain performance, it also requires additional bandwidth to carry RLL overhead information. This RLL bandwidth usage lowers the storage capacity of the data storage system.
Randomization is an encoding process where the user data is altered based on a numerical pattern that repeats over time. A Linear Feedback Shift Register (LFSR) operating based on an initial seed value produces the repeating numerical pattern. Logic is used to XOR the user data with the repeating numerical pattern to generate randomized user data.
Randomization tends to reduce the length of zero runs, and thus, reduce the need for RLL encoding. Unfortunately, the use of randomization has not been effectively implemented to significantly reduce and possibly eliminate the need for RLL encoding. As a result, bandwidth remains committed to RLL overhead. This loss of bandwidth lowers the storage capacity of the data storage system.
The invention solves the above problems with circuitry that grades the randomized user data to significantly reduce, or even eliminate, the need for RLL encoding. As a result, the circuitry reduces or eliminates the bandwidth required for RLL encoding. This bandwidth savings increases the storage capacity of the data storage system.
In some examples of the invention, data storage system circuitry comprises randomizer circuitry and run-length control circuitry. The randomizer circuitry generates randomized user data. The run-length control circuitry grades the randomized user data to determine if the randomized user data requires run-length encoding. The run-length control circuitry applies the run-length encoding to the randomized user data if the randomized user data requires run-length encoding. The run-length control circuitry may encode decoding information and error correction information for the decoding information into the randomized user data. The run-length encoding may comprise de-randomization or RLL encoding. If de-randomization is used, RLL encoding may not even be used for the randomized user data.
In some examples of the invention, the randomized user data represents a data sector comprised of blocks. The run-length control circuitry may individually grade the blocks of the randomized user data based on zero-run characteristics. The run-length control circuitry may apply the run-length encoding to a pre-set number of the blocks of the randomized user data having worst grades.
In some examples of the invention, the run-length control circuitry grades the randomized user data based on zero-run characteristics. The run-length control circuitry determines if the randomized user data requires the run-length encoding based on whether a grade for the randomized user data exceeds a maximum zero-run constraint. The randomized user data may represent a data sector comprised of blocks. The run-length control circuitry may individually grade the blocks of the randomized user data to determine if individual ones of the blocks of the randomized user data require the run-length encoding. If so, the run-length control circuitry may apply the run-length encoding to the individual ones of the blocks of the randomized user data.